AWS マネジメントコンソールのスイッチロール履歴を操作するスクリプトを作成してみた
AWSマネジメントコンソールでスイッチロールを行う場合、その履歴が残りますが、その履歴はクッキーとしてWebブラウザに保存されます。
使用しない履歴は消したいものですが、クッキーを拡張機能を用いて取得し、デコード、編集、エンコード ...
とかなり面倒です。
そこで、この面倒な作業を簡単に行うスクリプトを作成しました。(Mac Google Chromeユーザ向けです)
このスクリプトを使用することで、Webブラウザに保存されたクッキーの確認、削除、追加などを簡単に行うことできます。
動作環境
前述した通り、Mac・Chrome環境を想定しています。他の環境でも使用できると思いますが、パスの変更などが必要となります。
また、スクリプトは、Pythonで記述しています。
- Mac
- Python 3系
- Google Chrome
使用方法
インストール
こちらのリポジトリをクローンします。
$ git clone https://github.com/cH6noota/switch-role-cli.git
その後、クローンしたディレクトリに移動して、インストールを行います。
$ cd switch-role-cli $ bash install.sh Create /Users/hogehoge/.aws-sw Run the following command : source "/Users/hogegoge/.zshrc"
Run the following command : source "/Users/hogegoge/.zshrc"
インストール時、設定ファイルの読み込みが促されますのでその通り実行します。
$ source "/Users/hogegoge/.zshrc"
これでsw
コマンドとして使用できるようになりました。
使ってみる
スイッチロールのリスト
まず、はじめにスイッチロールの履歴を読み込んでみます。
$ sw ls Set user : Default Index Account id Role name View name Color ------ ------------------ ---------------------------- ----------------------------------- -------- 0 123456789012 switch-target-role hoge E74C8E ------ ------------------ ---------------------------- ----------------------------------- -------- 1 123456789012 switch-target-role fuga 7838F9 ------ ------------------ ---------------------------- ----------------------------------- --------
スイッチロールの削除
続いて、スイッチロールの削除を行ってみます。
注意点として、Webブラウザは終了して操作するようにしてください。
$ sw del 0 Index Account id Role name View name Color ------ ------------------ ---------------------------- ----------------------------------- -------- 0 123456789012 switch-target-role hoge E74C8E Proceed [y/n]?y
スイッチロールの追加
スイッチロールの追加はARNを引数にしても追加が可能です。
こちらも同様にWebブラウザは終了して操作するようにします。
# ARN option $ sw add arn:aws:iam::123456789012:role/switch-target-role View name :hoge-fuga Color [Enter(ramdom)]:D253F2 # No ARN option $ sw add Account id :123456789012 Role name :switch-target-role View name :hoge-fuga Color [Enter(ramdom)]:
Webブラウザプロファイルの変更
プロファイルを変更する場合は、番号またはDefault
を指定します。
$ sw profile New user number of Default [1~3 / Default]:1
aws/config formatでの出力
aws/config formatでの出力も可能です。
例えば、この出力結果を利用することで、AWS Extend Switch Rolesの移行もスムーズに行えます。
$ sw output [fuga] role_arn = arn:aws:iam::123456789012:role/switch-target-role color = 7838F9 [hoge-fuga] role_arn = arn:aws:iam::123456789012:role/switch-target-role color = D253F2 [hoge-fuga] role_arn = arn:aws:iam::123456789012:role/switch-target-role color = A72B1B
最後に
スイッチロールの履歴を操作するスクリプトを作成してみましたが、クッキーの取得が初めてで難しかったです。
とりあえず、自分用に作ってみましたが、時間がある時にでもコードのリファクタリングを行います。